/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package practica3;

/**
 *
 * @author Ari Mendez
 */
public class lista {

    nodo primero;
    nodo ultimo;
    int cantidad;

    public lista() {
        primero = null;
        ultimo = null;
        cantidad = 0;
    }

    public void agregar(nodo n) {
        if(n!=null){
           if (primero == null) {
               this.primero = n;
                this.ultimo = n;
            } else {
                ultimo.setSiguiente(n);
                n.setAnterior(ultimo);
                ultimo = n;
            }
            cantidad++;
        }
    }

    public int getCantidad() {
        return cantidad;
    }

    public nodo getPrimero() {
        return primero;
    }

    public nodo getUltimo() {
        return ultimo;
    }

    public nodo getNodo(int i) {

        nodo aux = primero;
        for (int x = 0; x < i; x++) {
            if(aux!=null){
                aux = aux.getSiguiente();
            }
        }
        return aux;
    }

    public tarjeta getTarjetaPorId(String id) {
        tarjeta tar = null;
        nodo aux = this.primero;
        while (aux != null) {
            if (aux.getTarjeta().getId().equalsIgnoreCase(id)) {
                tar = aux.getTarjeta();
                aux = this.ultimo;
            }                
            aux = aux.getSiguiente();
        }
        return tar;
    }

    public String[] getTodosLosIds() {
       
        String [] res = new String [cantidad];
        nodo aux = this.primero;
        int indice =0;
        while (aux != null) {
            res[indice]= aux.getTarjeta().getId();
            aux = aux.getSiguiente();
            indice ++;
        }
        return res;
    }
}
